ExpoのOTA update
Over The Air update
OTA Updateの設定の仕方には2種類ある
app.jsonの指定だけで完結する
再起動させるタイミングなどを制御する
注意すること
backgorund→foregroundの遷移だけでは更新されない
storeからinstall後、1回目に開いた時はOTA Updateが反映されない
例えば、
storeに v1.0を提出し、
その後、v1.1~v1.5をOTA Update
この時点でuserが新しくstoreからinstallした時、最初に見るのはv1.0のものになる
これはbackendのAPIの修正の仕方にも影響があるので注意が必要mrsekut.icon
適度にstoreに入れるモチベーションが高まるなmrsekut.icon
OTA Updateではupdateできないパターンがある
その条件を満たす場合は、Storeに提出する必要がある
例
Expo SDKのversionを上げた時
etc.
参考
めちゃくちゃわかりやすい
若干古い(expo buildを使っている点など)
中身変え過ぎたらgoogleとかに拒否されるみたいなのなかったっけ?
これ、全員自動的に最新を見るってこと?
store配信時に、channel変えたりしたらその限りではない?
古いAPIを捨てても良いと判断できるタイミングを知りたい
古いAPIを使い続けられることはあるのかどうか
可能性としては無限にあるなmrsekut.icon
めちゃくちゃ古いversionを使って、その後長らく起動していなかった人が、久々に1回起動した時に見るのは古いversionになっている
更新した時にアラート表示するやつをやめたい
でもそれするとクラッシュした感じの見た目になるのかmrsekut.icon
backgroundに移動した時に再起動させればいい
これ、できないの?できそうだけど
でもなんか作業途中だったら、UXめっちゃ最悪になるかmrsekut.icon
フォームに入力中にbackgroundにしてたときとか
複数のアップデートがある時に何度もアラートを出さない
元からそうなってたっけ?
インストール直後のアプリ起動時は、ストアにアップされているバージョンになり、アプリ再起動するとOTAアップデートしたバージョンになる
もしOTAアップデートを複数回していた場合は、その回数分のアプリ再起動が必要
ストアからインストールして初めて開いたときにはOTA updateが反映されません
これ回避方法ないんだろうか
頻繁にstore提出すればいい、というのはそれはそう
The standalone app knows to look for updates at your app's published url, and if you publish an update then the next time a user opens your app they will automatically download the new version. ref 新しいものをpublishすると、次にuserがアプリを開いたときに自動的にdownloadされる
これ、ほんまか?
https://www.youtube.com/watch?v=Si909la3rLk&feature=emb_title
Now that developers can customize their runtimes, it’s easy with over-the-air-updates to accidentally end up in a situation where the JavaScript code for an update is incompatible with the runtime in the standalone app. We need to provide tools that make it easy to do the right thing in these scenarios. We won’t go into that here, but it’s worth noting that this is a new problem that arises with custom runtimes, and we’re working on solutions in a new service called EAS Update. Read more about how to mitigate this risk now in the “Over-the-air updates” section of the EAS Build docs. ref ota updateとstandalone appで挙動が変わる場合がある
https://gyazo.com/08f1d1190c8a3317f3a1fa8a37e158ed
runtimeとbundleの互換性のズレ
iosとandroidの違い
これ、otaの話をしているのかわからんけどmrsekut.icon
Updates are handled differently on iOS and Android. On Android, updates are downloaded in the background. This means that the first time a user opens your app after an update they will get the old version while the new version is downloaded in the background. The second time they open the app they'll get the new version. On iOS, updates are downloaded synchronously, so users will get the new version the first time they open your app after an update. ref Androidはbackgroundでdownloadされる
その間は、古いversionが表示されている
アプリを閉じて、再び開くと新しい物が表示される
落とすのか、backgroundなのか
iOSは動機的にdownloadされる
初めてアプリを開いたときから新しいものになっている
マジ?
こっちが間違っているか、別の話をしている気がする
上の説明と矛盾するなmrsekut.icon